/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.on.clinical.presenter;

import com.on.clinical.classes.Usuario;
import com.on.clinical.dao.ConexaoMysql;
import com.on.clinical.dao.HibernateUtilMySql;
import com.on.clinical.view.ViewTelaAutenticacao;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.util.List;
import javax.swing.JOptionPane;
import org.hibernate.Session;

/**
 *
 * @author Raphael
 */
public class PresenterTelaAutenticacao {

    private ViewTelaAutenticacao view;
    private ConexaoMysql banco;

    public PresenterTelaAutenticacao() {

        view = new ViewTelaAutenticacao();

        view.getBtnAutenticar().addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    autenticar();
                } catch (Exception ex) {
                    JOptionPane.showMessageDialog(null, ex + "\nUsuário ou senha inválida!");
                }
            }
        });
        view.setLocationRelativeTo(view);
        view.setVisible(true);
    }

    public void autenticar() throws Exception {   //autenticação do usuario
        String usuario, senha, tipo;
        usuario = view.getCampoUsuario().getText();
        senha = view.getCampoSenha().getText();
        tipo = view.getCampoTipo().getSelectedItem().toString();
        banco = new ConexaoMysql();
        //chama atenticar no banco

        try {
//            Session s = HibernateUtilMySql.getSessionFactory().getCurrentSession();
//            s.beginTransaction();
//            Usuario usu = new Usuario("teste", "teste");
//            s.save(usu);
//            s.getTransaction().commit();

//            List<Usuario> usu = (List<Usuario>) s.createQuery("select * from usuario").list();
//            int i=0;
//            for(Usuario u : usu){
//                System.out.println(usu.get(i).getUsuario());
//                i++;
//            }
            ResultSet res = banco.consultar("Select codUsuario from usuario where(usuario='" + usuario + "' and senha='" + senha + "')");
            res.next();
            if (res.getBoolean(1)) {
                view.dispose();
                new PresenterTelaPrincipal(tipo);
            }

        } catch (Exception ex) {
            throw ex;
        }
    }
}